package com.charging.system.service;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.charging.system.domain.KxEquip;

/**
 * 设备管理Service接口
 *
 * @author charging
 * @date 2024-04-12
 */
public interface IKxEquipService
{
    /**
     *  根据设备编号查询设备信息
     * @param equipNo
     * @return
     */
    public KxEquip getKxEquipByEquipNo(String equipNo);

    /**
     * 查询设备管理
     *
     * @param equipId 设备管理主键
     * @return 设备管理
     */
    public KxEquip selectKxEquipByEquipId(Long equipId);

    /**
     * 查询设备管理列表
     *
     * @param kxEquip 设备管理
     * @return 设备管理集合
     */
    public List<KxEquip> selectKxEquipList(KxEquip kxEquip);

    /**
     * 新增设备管理
     *
     * @param kxEquip 设备管理
     * @return 结果
     */
    public int insertKxEquip(KxEquip kxEquip);

    /**
     * 修改设备管理
     *
     * @param kxEquip 设备管理
     * @return 结果
     */
    public int updateKxEquip(KxEquip kxEquip);

    /**
     * 批量删除设备管理
     *
     * @param equipIds 需要删除的设备管理主键集合
     * @return 结果
     */
    public int deleteKxEquipByEquipIds(Long[] equipIds);

    /**
     * 删除设备管理信息
     *
     * @param equipId 设备管理主键
     * @return 结果
     */
    public int deleteKxEquipByEquipId(Long equipId);

    /**
     * 打开关闭插座 请求
     * @param chargeno
     * @param channelno
     * @param type
     * @param time
     * @param chargingFullNotStop
     * @return
     */
    public JSONObject setChannel(String chargeno, String channelno, String type, String time, String chargingFullNotStop);

    /**
     * 仅关闭插座
     * @param equipNo
     * @param channelNo
     */
    void onlyCloseChannel(String equipNo, String channelNo);

    /**
     * 关闭插座后业务处理
     * @param equipNo
     * @param channelNo
     * @param initChannel
     * @param Active
     */
    void closeChannel(String equipNo, int channelNo, int initChannel, boolean Active);

    /**
     * 通过设备编号更新设备
     * @param kxEquip
     * @return
     */
    int updateKxEquipByEquipNo(KxEquip kxEquip);
}
